#include "Parser.h"
#include "Merge.h"
#include <iostream>
#include <list>
#include <string>

#ifndef SORTEXTERNO_H_
#define SORTEXTERNO_H_

using namespace std;

class SortExterno {
public:
	SortExterno();
	virtual ~SortExterno();

	/* Realiza un sort del arreglo de terminos pasados, y
	 * los graba en un archivo el resultante del mismo
	 */
	void sort(Termino_Parseado* terminos, int cantidad_terminos);

	std::list<std::string> getParticionesGeneradas();

private:
	Termino_Parseado** array_punteros;
	void cargar_array(Termino_Parseado* terminos, int cantidad_terminos);
	std::list<std::string> particiones_generadas;
	int particiones;
	std::string path_particiones;

};

#endif /* SORTEXTERNO_H_ */
